In data compression standards, for example of MPEG type, the images to be coded are generally images of intra and inter type and in the latter case, with predictive coding, of type P or with bidirectional predictive coding of type B. The term image is taken here within its broad sense and also encompasses the video object planes of which the image is composed, better known by the name VOP, standing for Video Object Plane.
Conventionally, the motion estimator contained in a coder is, firstly, invoked so as to extract the motion field of the type P image. Subsequently, after the coding of this P image, the motion estimator is called upon again for each of the B images, for the conventional forward, backward and bidirectional prediction modes. On completion of the various motion estimations of each of the B images, the coding is performed by choosing the best mode from among all the modes available, including the “temporal direct” mode, according to the criterion in force in the coder. This “temporal direct” mode, explained for example in paragraph 7.6.9.5. of the ISO/IEC 14496-2 standard, uses the motion vectors of the co-located macroblock in the most recently decoded type P image to perform the bidirectional prediction of the current macroblock in the type B image. The co-located macroblock is the macroblock lying at the same location, that is to say having the same vertical and horizontal index as the current macroblock of the P image.
FIG. 1 represents the motion prediction utilizing the direct mode.
Four successive images are represented in the order of display, that is to say before reordering, a first reference image of type I or P, a second and third image of type B and a fourth reference image of type P.
The prediction for the current macroblock MBp of the fourth image of type P, referenced 1, is the macroblock referenced 2 of the first image of type I or P. The corresponding motion vector MVp is referenced 3.
The co-located macroblock corresponding to the macroblock MBp for the second image, is referenced 4. The direct type prediction, for this macroblock belonging to the B image, gives a first macroblock MBfw in the first image and a second macroblock MBbck in the last image, these macroblocks referenced 5 and 6 respectively correspond to the forward motion vector MVF and to the backward motion vector MVB referenced 7 and 8 in the figure.
Although the motion vectors are generally allocated, in the MPEG standard, to macroblocks, the process can be applied to simple image blocks and therefore, hereinafter, no distinction will be made between image blocks and macroblocks.
By way of example, the traditional approach used during motion estimation making it possible to extract the vector of a block of a P image can be based on the technique of block matching, in a search windown, by minimizing the sum of the absolute value of the inter-image differences as follows:
                              SAD                      dx            ,            dy                    P                =                  (                                    ∑                              i                ,                                  j                  =                  0                                                            i                ,                                  j                  =                  L                                                      ⁢                                                                                              P                    cur                                    ⁡                                      (                                          i                      ,                      j                                        )                                                  -                                                      IP                    prev                                    ⁡                                      (                                                                  i                        +                        dx                                            ,                                              j                        +                        dy                                                              )                                                                                              )                                                  SAD                      Dx            ,            Dy                    P                =                              Min            ⁡                          (                              SAD                                  dx                  ,                  dy                                P                            )                                            dx            ,                          dy              =                              -                N                                                          dx            ,                          dy              =              N                                          with:
i, j: row and column indices of the pixels contained in the block of size L*L,
Pcur(i,j): block of a current image of type P,
IPprev(i,j): block of a previous (from the temporal point of view) image of type I or P,
SADdx,dyP: sum of the absolute value of the differences (the acronym standing for Sum of Absolute Differences) between the luminance values of the pixels of a block of a current image of type P and of a block displaced by dx, dy of a previous image of type I or P.
SADDx,DyP: minimum value of SADdx,dyP over the set of image blocks in a search window of dimension 2N+1, 2N+1 and corresponding to a displacement Dx, Dy
As far as the co-located block of the B image is concerned, said block is predicted according to the direct mode with the aid of the vectors MVF and MVB such that:
            MBprd      drc        =          (                                    MB            bck                    +                      MB            fw                          2            )        ,half-sum of the blocks MBbck and MBfw, pixelwise, with:
MBbck=Pnext(xbck,ybck) in backward prediction mode.
Pnext(xbck,ybck) signifies the prediction block belonging to the next P image, from the temporal point of view, whose position corresponds to that of the co-located block displaced by the vector with components xbck, ybck.
MBfw=IPprev(xfor,yfor) in forward prediction mode.
IPprev(xfor,yfor) signifies the prediction block belonging to the previous I/P image, whose position corresponds to that of the co-located block displaced by the vector with components xfor, yfor.
xbck, ybck, components of the vector MVB which are derived from the components of the vector MVp of the co-located block MBp.
xfor, yfor, components of the vector MVF which are derived from the components of the vector MVp of the co-located block MBp.
The motion vectors MVB and MVF allocated to the co-located block, are the vectors colinear with the motion vector MVp, pointing respectively into the next image of type P and into the previous image of type I or P, from which the co-located block originates.MBprddrc is the prediction block of the B image in direct mode, calculated on the basis of the forward and backward prediction blocks.
In such an approach, the motion estimation and the choice of the mode of prediction of the blocks MB of the P images are carried out independently of the content of the previous, from the temporal point of view, B images. The coding, that is to say the data compression, is consequently not optimal for these images of bidirectional type.